/* 本周开始日期 */
export function getMonday(type, dates) {
  let now = new Date()
  let nowTime = now.getTime()
  let day = now.getDay()
  let longTime = 24 * 60 * 60 * 1000
  let n = longTime * 7 * (dates || 0)
  let dd = 0
  if (type == 's') {
    dd = nowTime - (day - 1) * longTime + n
  }

  if (type == 'e') {
    dd = nowTime + (7 - day) * longTime + n
  }

  dd = new Date(dd)
  let y = dd.getFullYear()
  let m = dd.getMonth() + 1
  let d = dd.getDate()
  m = m < 10 ? '0' + m : m
  d = d < 10 ? '0' + d : d
  day = y + '-' + m + '-' + d
  return day
}

/* 今日0、昨日-1、明日1 */
export function getDate(dates) {
  let dd = new Date()
  let n = dates || 0
  dd.setDate(dd.getDate() + n)
  let y = dd.getFullYear()
  let m = dd.getMonth() + 1
  let d = dd.getDate()
  m = m < 10 ? '0' + m : m
  d = d < 10 ? '0' + d : d
  let day = y + '-' + m + '-' + d
  return day
}

export function formatDateTime(date, format) {
  const o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, // 小时
    'H+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    S: date.getMilliseconds(), // 毫秒
    a: date.getHours() < 12 ? '上午' : '下午', // 上午/下午
    A: date.getHours() < 12 ? 'AM' : 'PM', // AM/PM
  };
  if (/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  for (let k in o) {
    if (new RegExp('(' + k + ')').test(format)) {
      format = format.replace(
        RegExp.$1,
        RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
      );
    }
  }
  return format;
}
